package jetpack.com.pzl.architecture.data_binding;

import androidx.databinding.ObservableField;
import androidx.databinding.ObservableInt;

/**
 * 【数据驱动UI刷新】
 * 继承于 Observable 类相对来说限制有点高，且也需要进行 notify 操作，
 * 因此为了简单起见可以选择使用 ObservableField。[ ObservableField 可以理解为官方对 BaseObservable 中字段的注解和刷新等操作的封装 ]，
 * 官方原生提供了对基本数据类型的封装，例如 ObservableBoolean、ObservableByte、ObservableChar、ObservableShort、ObservableInt、ObservableLong、ObservableFloat、ObservableDouble 以及 ObservableParcelable ，也可通过 ObservableField 泛型来申明其他类型
 */
public class Bean2 {

    private ObservableField<String> hero;

    private ObservableInt attack;

    private ObservableField<String> partner;

    public Bean2(String hero, int attack, String partner) {
        this.hero = new ObservableField(hero);
        this.attack = new ObservableInt(attack);
        this.partner = new ObservableField<>(partner);
    }

    public ObservableField<String> getHero() {
        return hero;
    }

    public ObservableInt getAttack() {
        return attack;
    }

    public ObservableField<String> getPartner() {
        return partner;
    }
}
